package me.miencraft.plugin.worldinfo;

/**
 * @author langle__
 * @version 1.0
 */
public enum TimeType {

    DAY(0, 6000), // 白天
    NOON(6000, 12000), // 中午
    DUSK(12000, 13800), // 黄昏
    NIGHT(13800, 18000), // 晚上
    MIDNIGHT(18000, 22200), // 午夜
    DAWN(22200, 24000); // 黎明

    private final int start;
    private final int end;

    TimeType(int start, int end) {
        this.start = start;
        this.end = end;
    }

    /**
     * 根据给定的游戏刻返回相应的时间类型
     *
     * @param current 当前游戏刻
     * @return 对应当前游戏刻的时间类型
     * @throws IllegalArgumentException 如果给定的游戏刻不在任何定义的时间类型范围内
     */
    public static TimeType fromGameTick(int current) {
        // 遍历所有时间类型，检查当前游戏刻是否在某个时间类型的范围内
        for (TimeType type : values()) {
            if (type.start <= current && current < type.end) {
                // 如果当前游戏刻在某个时间类型的范围内，返回该时间类型
                return type;
            }
        }
        // 如果当前游戏刻不在任何时间类型的范围内，抛出异常
        throw new IllegalArgumentException("无效的游戏刻: " + current);
    }


}
